package fivm.common.interative.inf;

import java.io.File;

import fivm.cross.platform.steamobj.appcase.CaseBusinessStream;
import fivm.cross.platform.steamobj.appcase.CaseInteractiveControlStream;

/**
 * 定义一个app文件等一些数据交互接口，让inject环境与linux环境与servlet环境对齐起来
 * 
 * */


public interface IAppInterative {
	//app内部的注入工作目录，一般为/data/data/${pkgname}/fiInjectJ/
	public final static String AppInjectWorkPath="fiInjectJ";
	//插件在vm相对路径为/data/data/${pkgname}/fiInjectJ/plugin/，
	public final static String PluginRelativePath="plugins";
	//路径为/data/data/${pkgname}/fiInjectJ/basefiles/
	public final static String BaseFilesRelativePath="basefiles";
	//当前的用例数据放在相对路径为/data/data/${pkgname}/fiInjectJ/current_case/，
	public final static String CurrentCaseRelativePath="current_case";
	public final static String CaseInterativeFile="caseStream.json";
	

	public final static String ServletAppPluginPath="/app/getAppFile?appObjectId=%s&relativeFilePath=%s";//服务器的请求路径

	/**
	 * 向服务器请求文件
	 * @param fileName  为文件名
	 * @param relativeDir 为相对路径
	 * @param forceUpdate 是否强制更新
	 * */
	public File getAppFile(String fileName,String relativeDir,boolean forceUpdate);
	//取app 注入插件
	public File getAppInjectJarFile(boolean forceUpdate);
	//取app case 交互的数据
	public CaseBusinessStream getCaseInteractiveStream();
	
	public String getAppInjectWorkPath();
	public String getPluginPath();
	public String getBaseFilesPath();
	
}
